package cn.kgc.reflect;

/**
 * @author: mosin
 * @version: v1.0  2022/10/10
 * 反射：
 *  在程序运行的过程中 对类或者对象中 方法 属性 构造方法  注解 操作的一种行为
 *  操作： 分解  方法  属性    -> 对象
 *  1. 类对象  class  user  student   Class
 *   1.对象.getClass()    User  user = new  User()  user.getClass()
 *   2.类名.class         User.class
 *   3.Class.forName(参数)    推荐  更能体现反射的动态性
 */
public class TestReflect {


    public static void main(String[] args) {

        //1.对象.getClass()
        Student student  =  new Student();
        Class clazz = student.getClass();
        System.out.println("clazz = " + clazz);

        //2.类名.class
        clazz = Student.class;

        //3.Class.forName(类的全限定名)  推荐

        try {
            clazz = Class.forName("cn.kgc.reflect.Student");

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

    }


}
